home *** CD-ROM | disk | FTP | other *** search
/ QRZ! Ham Radio 8 / QRZ Ham Radio Callsign Database - Volume 8.iso / pc / files / misc / hamrtty.arc / RTTYU.BAS < prev    next >
BASIC Source File  |  1980-01-01  |  4KB  |  106 lines

  1. 10 REM $LINESIZE:132
  2. 20 ' RTTY UTILITY PROGRAM FOR THE IBM PERSONAL COMPUTER
  3. 30 ' BY   GLENN E. WELMAN  -  WB0OWT
  4. 40 '      22505 LABRADOR ST.
  5. 50 '      BOCA RATON, FLA 33433
  6. 55 ' I WILL BE MOVING TO LEXINGTON, KY IN AUGUST, 1983.
  7. 60 '
  8. 70 '********************************************************************
  9. 80 '
  10. 90 '  FEEL FREE TO GIVE COPIES OF THIS PROGRAM TO YOUR FRIENDS.
  11. 100 '
  12. 110 '  PLEASE, DON'T SELL THE PROGRAM TO OTHERS.
  13. 120 '
  14. 130 '  IF YOU FIND BUGS IN THE PROGRAM,
  15. 140 '  FEEL FREE TO CORRESPOND DIRECTLY WITH ME.
  16. 150 '
  17. 160 '  IF YOU FIND YOURSELF USING THE PROGRAMS FREQUENTLY,
  18. 170 '  CONSIDER SENDING A LITTLE GREEN STUFF MY WAY.  ($25 SUGGESTED)
  19. 180 '
  20. 190 '  IF YOUR SLUSH FUND IS DRIED OUT OR YOU RARELY USE THIS PROGRAM,
  21. 200 '  JUST ENJOY THE PROGRAM WITH A CLEAR CONSCIENCE.
  22. 210 '
  23. 220 '                       73's
  24. 230 '                       Glenn - WB0OWT
  25. 240 '
  26. 250 '********************************************************************
  27. 260 DEFINT A-Z
  28. 270 'DETERMINE SCREEN SIZE AND SET THE SCROLL PARAMETERS
  29. 280 A=CSRLIN:PRINT STRING$(60," ");:IF A=CSRLIN THEN CMAX=80 ELSE CMAX=40
  30. 290 CLS
  31. 300 'READ THE INITIALIZATION PARAMETERS
  32. 310 QBEL=0:RCNT=1:LPTR$="LPT1:"
  33. 320 ON ERROR GOTO 430
  34. 330 OPEN "PARMS.RTY" FOR INPUT AS #1
  35. 340 WHILE NOT EOF(1)
  36. 350 INPUT#1,P$:P$=LEFT$(P$,4)
  37. 360 FOR PL=1 TO LEN(P$)
  38. 370 P=ASC(MID$(P$,PL,1)):IF (P>&H60) AND (P<&H7B) THEN MID$(P$,PL,1)=CHR$(P-&H20)
  39. 380 NEXT PL
  40. 390 IF P$="LPT2" THEN LPTR$="LPT2:":GOTO 420
  41. 400 IF P$="LPT3" THEN LPTR$="LPT3:":GOTO 420
  42. 410 IF P$="QB" THEN QBEL=-1
  43. 420 WEND
  44. 430 CLOSE #1
  45. 440 REM $PAGE
  46. 450 'INITIALIZE PROGRAM VARIABLES
  47. 460 ON ERROR GOTO 0
  48. 470 INPUT "ENTER NAME OF FILE TO PROCESS";PF$
  49. 480 IF PF$="" THEN 470
  50. 490 OPEN PF$ FOR INPUT AS #2
  51. 500 INPUT "WOULD YOU LIKE TO SAVE THE RESULTS";P$
  52. 510 P$=LEFT$(P$,1):IF P$="Y" OR P$="y" THEN GOSUB 790
  53. 520 INPUT "DO YOU WANT TO PRINT THE FILE";P$
  54. 530 P$=LEFT$(P$,1):IF P$="Y" OR P$="y" THEN PRNTR=-1 ELSE PRNTR=0
  55. 540 CLS
  56. 550 WIDTH LPTR$,255
  57. 560 OPEN LPTR$ AS #1
  58. 570 'THIS IS THE MAIN PROGRAM LOOP
  59. 580 IF UNCOMP THEN GOSUB 920:GOTO 610
  60. 590 IF EOF(2) THEN 620
  61. 600 TCH$=INPUT$(1,#2):GOSUB 920
  62. 610 GOTO 580
  63. 620 CLOSE:END
  64. 630 'GET THE NEXT RECEIVED CHARACTER AND DISPLAY IT
  65. 640 B$=CHR$(BAU):IF BAU > 31 OR BAU=7 OR BAU=10 OR BAU=13 THEN 660 ELSE 770
  66. 650 'B$ CONTAINS THE ASCII CHARACTER
  67. 660 IF PRNTR THEN IF BAU<>7 THEN PRINT#1,B$;
  68. 670 CURIN=ASC(B$)
  69. 680 IF NOT COMP THEN 720
  70. 690 IF BFILE THEN IF CURIN=LASTIN THEN RCNT=RCNT+1:GOTO 720 ELSE IF LASTIN<>10 AND LASTIN<>13 THEN IF RCNT=1 THEN PRINT#3,CMP$;:GOTO 710 ELSE IF RCNT=2 THEN PRINT#3,CMP$;CMP$;:GOTO 710
  71. 700 IF BFILE THEN IF LASTIN<>10 AND LASTIN<>13 THEN IF RCNT=26 THEN PRINT#3,CMP$;CHR$(255);CHR$(25);CMP$; ELSE PRINT#3,CHR$(255);CHR$(RCNT);CMP$;
  72. 710 IF BFILE THEN CMP$=B$:RCNT=1
  73. 720 IF BFILE THEN IF CURIN=13 AND (LASTIN=10 OR LASTIN=13) THEN PRINT#3,
  74. 730 IF BFILE THEN IF CURIN=10 OR CURIN=13 THEN PRINT#3,CHR$(CURIN+10); ELSE IF LASTIN=10 OR LASTIN=13 THEN PRINT#3,
  75. 740 IF BFILE AND NOT COMP AND CURIN<>10 AND CURIN<>13 THEN PRINT#3,B$;
  76. 750 LASTIN = CURIN
  77. 760 GOSUB 870:'PUT CHARACTER ON SCREEN
  78. 770 RETURN
  79. 780 'SEND RECEIVED CHARACTERS TO SPECIFIED FILE
  80. 790 BFILE=0
  81. 800 INPUT "ENTER NAME OF NEW FILE";BF$
  82. 810 IF BF$="" THEN 850
  83. 820 OPEN BF$ FOR APPEND AS #3
  84. 830 BFILE=-1:INPUT "DO YOU WANT COMPRESSION (Y/N) ";P$
  85. 840 P$=LEFT$(P$,1):IF P$="Y" OR P$="y" THEN COMP=-1 ELSE COMP=0
  86. 850 RETURN
  87. 860 'PUT RECEIVED CHARACTER ON SCREEN
  88. 870 RCH=ASC(B$):IF RCH=13 THEN LOCATE CSRLIN,1,0:RETURN
  89. 880 PRINT B$;
  90. 890 RETURN
  91. 900 REM $PAGE
  92. 910 'PUT CHAR TO SEND ON SCREEN
  93. 920 TCH=ASC(TCH$):IF UNCOMP THEN TCNT=TCNT-1:TCH=UTCH:TCH$=UTCH$:IF TCNT=0 THEN UNCOMP=0:GOTO 980 ELSE GOTO 980
  94. 930 IF UCNT THEN UCNT=0:UNCOMP=-1:UTCH=TCH:IF TCH=13 THEN UTCH$=CHR$(23):RETURN ELSE UTCH$=TCH$:RETURN
  95. 940 IF USTRT THEN USTRT=0:UCNT=-1:TCNT=TCH:RETURN
  96. 950 IF CRLF THEN CRLF=0:IF TCH=10 THEN LTCH=10:RETURN
  97. 960 IF QBL THEN QBL=0:IF TCH=7 THEN LTCH=7:RETURN
  98. 970 IF TCH=255 THEN USTRT=-1:RETURN
  99. 980 IF TCH=13 OR TCH=10 THEN IF LTCH=20 OR LTCH=23 THEN RETURN ELSE TCH$=CHR$(TCH+10)
  100. 990 IF TCH=20 OR TCH=23 THEN BAU=TCH-10 ELSE BAU=TCH
  101. 1000 GOSUB 640
  102. 1010 LTCH=TCH
  103. 1020 IF TCH=13 THEN TCH=10:CRLF=-1:GOTO 990
  104. 1030 IF QBEL AND TCH=39 THEN TCH=7:QBL=-1:GOTO 990
  105. 1040 RETURN
  106.